The present invention relates to the field of digital computer systems, and more specifically, to a method for processing queries on a data table.
Analytical database systems manage very large amounts of data and are optimized for queries that may read large fractions of it. Query performance in such analytical databases, much more than in OLTP systems, is highly dependent on accurate selectivity estimation for the query optimizer. This is because typical analytical queries do not include point queries but process large fractions of very large tables and include joins order with many tables before they finally reduce the result set by computing an aggregate. Bad plan decisions, such as choosing the wrong join order, makes the difference between query runtimes of seconds or months in these systems. In order to make the right plan decisions, it is crucial for the query optimizer to accurately estimate the selectivity of query parts (predicates, joins, groupings, etc.).